package com.LeetCode.DFS;

import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

/**
 * 括号生成
 */
public class generateParenthesis {

    List<String> res;

    public List<String> generateParenthesis(int n){
        res = new ArrayList<>();
        dfs("",n, n);
        return res;
    }

    public void dfs(String curStr, int l, int r){
        if(l == 0 && r == 0)
            res.add(curStr);

        if(l > r)
            return;

        if(l>0)
            dfs(curStr + "(", l - 1, r);

        if(r>0)
            dfs(curStr + ")", l, r - 1);

    }

    @Test
    public void test(){
        generateParenthesis(3).forEach(System.out::println);
    }
}
